This invention relates generally to the installation of software on computer systems and more particularly to the installation of a group of related programs, such as those in a software suite.
A typical software product, such as a database, word processor, or spreadsheet may be organized into a group or xe2x80x9csuitexe2x80x9d of individual component programs, or xe2x80x9ccomponents.xe2x80x9d For example, STRUCTURED QUERY LANGUAGE (SQL) SERVER is a software product developed by the MICROSOFT corporation that includes several components, such as the core SQL binaries (including the SQL dynamically linked library (DLL)), the INTERNET EXPLORER program and the MICROSOFT DATA ACCESS COMPONENTS (MDAC) program. The SQL SERVER software product may therefore be considered a suite. More typically, a suite includes several distinct software products, each having its own components and possibly sharing one or more components with other products in the suite. An example of such a suite is BACKOFFICE SERVER by MICROSOFT, which groups several MICROSOFT products, including SQL SERVER, EXCHANGE SERVER, HOST INTEGRATION SERVER (HIS), PROXY SERVER, FAX SERVER, SYSTEMS MANAGEMENT SERVER (SMS), MS SEARCH, MDAC, and INTERNET EXPLORER into a single software suite. A partial list of the components in the BACKOFFICE suite includes SQL SERVER, EXCHANGE SERVER, INTERNET EXPLORER, MS SEARCH, and MDAC. The INTERNET EXPLORER component is used in the SQL SERVER product, while the MS SEARCH component is used by both the SQL and EXCHANGE SERVER products.
Many of the components of a software suite may not be required for installation of the suite as a whole, but may, instead, be included as enhancements or options. The developer of the suite, however, may wish to require that some of the components be installed when the software suite is being used for certain scenarios. For example, if the software suite is installed on a computer system that is a part of a multi-location network, the suite developer may wish to require that more networking components be installed than in a stand-alone scenario. Some components may be required regardless of the scenario in which the suite is being used. For example, the suite developer may periodically introduce updates and patches to various components in the form of so-called xe2x80x9cservice packsxe2x80x9d and xe2x80x9chot fixes.xe2x80x9d It may be desirable to make service packs and hot fixes mandatory components that get installed as a prerequisite to installation of an entire software suite, regardless of the scenario for which the suite is being used.
A developer of a software suite may also wish to insure that when a user installs a software suite on a computer system, the system is first brought to a predetermined state in terms of which programs are initially installed. This simplifies the suite installation process by eliminating the need to account for all of the different versions of components that may already be installed on the system. For example, the suite developer may wish to require that every computer system on which the suite will be used is running the latest version of a particular operating system before allowing the full suite to be installed. This saves the developer the trouble of having to write a different setup procedure for each version of the operating system.
In accordance with the foregoing, the invention provides a method and system for installing a software suite with multiple components on a computer system, in which one or more of the components has an interface that allows a setup program to query the component to determine whether the component is required as a prerequisite to installation of the suite. Through the interface, a component responds to the query by indicating whether it is a prerequisite for the suite. The setup program installs those components that are determined to be suite prerequisites on the computer system, thereby creating a baseline installation image containing the installed components.
The setup program may also prompt a user to choose a scenario for which the suite is being used, and in response to the user""s input, query each component to determine which of the components is a prerequisite to operation of the suite for the chosen scenario. The setup program may then modify the baseline installation image by installing those components that are determined to be required for the scenario. The setup program may further modify the baseline installation image to include additional data elements required for operation of the suite.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments which proceeds with reference to the accompanying figures.